import fs from 'fs/promises';
import path from 'path';
import { fileURLToPath } from 'url';
import defaultConfig from './default-config.js';

// 获取当前模块路径
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

// 配置文件路径
const CONFIG_PATH = path.join(__dirname, 'db-config.json');

// 加载配置文件
export async function loadConfig() {
  try {
    const data = await fs.readFile(CONFIG_PATH, 'utf8');
    return JSON.parse(data);
  } catch (error) {
    // 如果文件不存在，返回默认配置
    if (error.code === 'ENOENT') {
      console.warn('配置文件不存在，使用默认配置');
      return defaultConfig;
    }
    throw error;
  }
}

// 保存配置文件
export async function saveConfig(config) {
  try {
    // 确保配置目录存在
    await fs.mkdir(path.dirname(CONFIG_PATH), { recursive: true });
    await fs.writeFile(CONFIG_PATH, JSON.stringify(config, null, 2));
    console.log('配置已保存');
  } catch (error) {
    console.error('保存配置失败:', error);
    throw error;
  }
}

// 获取默认配置
export function getDefaultConfig() {
  return defaultConfig;
}